package com.example.translator;

import java.util.List;
import java.util.Map;
import java.util.Properties;

public interface TranslationService {
    /**
     * 翻译文件名
     * @param fileName 要翻译的文件名（不包含扩展名）
     * @return 翻译后的文件名
     * @throws Exception 翻译过程中发生的异常
     */
    String translateFileName(String fileName) throws Exception;

    /**
     * 批量翻译文件名
     * @param fileNames 要翻译的文件名列表（不包含扩展名）
     * @return 翻译结果映射，key为原文件名，value为翻译后的文件名
     * @throws Exception 翻译过程中发生的异常
     */
    Map<String, String> batchTranslateFileNames(List<String> fileNames,ProgressCallback callback) throws Exception;
    
    /**
     * 检查服务是否已正确配置
     * @return 配置正确返回true，否则返回false
     */
    boolean isConfigured();

    /**
     * 更新配置信息的方法
     * @param config 包含新配置信息的Properties对象
     * @throws Exception 如果更新过程中发生错误，抛出异常
     */
    void updateConfig(Properties config) throws Exception;

    // 添加进度回调接口
    public interface ProgressCallback {
        void onProgress(int current, int total, String message);
        void onBatchComplete(int batchIndex, Map<String, String> results);
        void onError(int batchIndex, String error);
    }
}
